package com.bobo.pojo;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * 生成配置
 *
 * @author lilibo
 * @date 2019/2/1
 */
@Api("生成配置")
@Data
@Component
public class GenConfig {

	/**
	 * 生成到的项目路径
	 */
	@Value("${system.codegen.projectPath}")
	private String projectPath = System.getProperty("user.dir");

	/**
	 * 项目名称
	 */
	@Value("${system.codegen.project}")
	private String projectName = "project";

	/**
	 * 应用ID
	 */
	@Value("${system.codegen.artifactId}")
	private String artifactId = "cloud-service";

	/**
	 * 应用程序入口文件名
	 */
	@Value("${system.codegen.application}")
	private String applicationName = "SpringBoot";

	/**
	 * 包名
	 */
	@Value("${system.codegen.package}")
	private String packageName = "com";

	/**
	 * 模块名称
	 */
	@Value("${system.codegen.module}")
	private String moduleName = "bdqn";

	/**
	 * 作者
	 */
	@Value("${system.codegen.author}")
	private String author = "LILIBO";

	/**
	 * 时间
	 */
	@Value("${system.codegen.date}")
	private String date = "2021-01-01";

	/**
	 * 表前缀
	 */
	@Value("${system.codegen.tablePrefix}")
	private String tablePrefix = "";

	/**
	 * 表名称
	 */
	private String tableName;

	/**
	 * 表备注
	 */
	private String comments;

	/**
	 * 获取封装的模板变量
	 *
	 * @return
	 */
	public Map<String, Object> getContext() {
		Map<String, Object> map = new HashMap<>();
		map.put("projectPath", this.projectPath);
		map.put("projectName", this.projectName);
		map.put("artifactId", this.artifactId);
		map.put("applicationName", this.applicationName);
		map.put("package", this.packageName);
		map.put("module", this.moduleName);
		map.put("author", this.author);
		map.put("date", StrUtil.isNotBlank(this.date) ? this.date : DateUtil.format(DateUtil.date(), "yyyy-MM-dd"));
		return map;
	}
}
